php监控apple store是否有货【2014 |
您所在的位置:网站首页 › apple store监控 › php监控apple store是否有货【2014 |
一年一度的苹果新品刚发布后的几天,9月12号就正式上市了,按照惯例,果农们又得在网上拼个你死我活了,香港苹果店在12号下午3点后正式开放购买,还没来得及写好脚本,经过不断的按F5和enter,不懈努力之下,抢到了1台! 抢收过后,特意写下这个脚本,监控苹果网上商店是否有货,有货第一时间发出邮件通知我 此类服务的原理大多使用同一原理,就是发送get请求,获取苹果服务器的回应json字符串,判断里面的值,比如这次有isBuyable:true/false.获取方法有很多,比如我这次写的php,运行在服务器端,也能用javascript写,在浏览器定时运行,也能做成浏览器插件,接收来自服务器的返回信息并根据对应的回应进行相关的触发提醒。 至于怎么获取或者怎么知道苹果服务器的get url,有开发经验的童鞋肯定用过firefox 的firebug, 打开http://store.apple.com/hk-zh/buy-iphone/iphone6/ 购买的网页后,打开firebug,然后按照正常购买的流程,比如选择"iphone 6 plus"->"金色"->"64GB",留意这些选项都选中之后,在firebug的网络模块里可以看到浏览器发出了"http://store.apple.com/hk-zh/buyFlowSelectionSummary/IPHONE6P?node=home/shop_iphone/family/iphone6&step=select&option.dimensionScreensize=5_5inch&option.dimensionColor=gold&option.dimensionCapacity=128gb&option.carrierModel=UNLOCKED%2FWW&carrierPolicyType=UNLOCKED" 这样的请求,然后打开该请求的响应信息,内容很长,基本如下: {"head":{"status":"200","data":{}}, "body":{"content":{"pageURL":"5.5-吋螢幕-128gb-金色-已解鎖", "selected":{"productImage":"", "productTitle":"iPhone 6 Plus 128GB 金色 已解鎖", "purchaseOptions":{"financing":"\n\n\n\n\n\n", "promotions":"\n\n\n\n\n", "shippingPrice":"\n免費運送", "shippingLead":"\n預計出貨時間:\n暫時無法提供\n\n", "price":"\n\n\n\n\n\nHK$8,088\n\n\n\n\n\n", "isBuyable":false}, "partNumber":"MGAF2ZP/A"}, "pageTitle":"iPhone 6 Plus 128GB 金色 已解鎖 - Apple Store (香港)"}}}返回的json里面,包含了isBuyable的参数,估计苹果就是利用这个响应来判断是否有存货,并且来控制页面的操作。 知道这个原理后,就可以着手写脚本了,主要是用curl的api来发送请求,将返回的json转换为array,并判断该字段的值,false为无货,true为有货,代码已完成,摘录如下: 至于该监控是否准确,有待验证,只能坐等苹果有好消息了,希望延迟不会超过10分钟(假如邮件能够正常发送成功的话)。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |